'\" t
.\"     Title: git-reflog
.\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\"      Date: 08/03/2015
.\"    Manual: Git Manual
.\"    Source: Git 2.5.0.234.gefc8a62
.\"  Language: English
.\"
.TH "GIT\-REFLOG" "1" "08/03/2015" "Git 2\&.5\&.0\&.234\&.gefc8a62" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
git-reflog \- Manage reflog information
.SH "SYNOPSIS"
.sp
.nf
\fIgit reflog\fR <subcommand> <options>
.fi
.sp
.SH "DESCRIPTION"
.sp
The command takes various subcommands, and different options depending on the subcommand:
.sp
.if n \{\
.RS 4
.\}
.nf
\fIgit reflog\fR [\fIshow\fR] [log\-options] [<ref>]
\fIgit reflog expire\fR [\-\-expire=<time>] [\-\-expire\-unreachable=<time>]
        [\-\-rewrite] [\-\-updateref] [\-\-stale\-fix]
        [\-\-dry\-run] [\-\-verbose] [\-\-all | <refs>\&...]
\fIgit reflog delete\fR [\-\-rewrite] [\-\-updateref]
        [\-\-dry\-run] [\-\-verbose] ref@{specifier}\&...
\fIgit reflog exists\fR <ref>
.fi
.if n \{\
.RE
.\}
.sp
.sp
Reference logs, or "reflogs", record when the tips of branches and other references were updated in the local repository\&. Reflogs are useful in various Git commands, to specify the old value of a reference\&. For example, HEAD@{2} means "where HEAD used to be two moves ago", master@{one\&.week\&.ago} means "where master used to point to one week ago in this local repository", and so on\&. See \fBgitrevisions\fR(7) for more details\&.
.sp
This command manages the information recorded in the reflogs\&.
.sp
The "show" subcommand (which is also the default, in the absence of any subcommands) shows the log of the reference provided in the command\-line (or HEAD, by default)\&. The reflog covers all recent actions, and in addition the HEAD reflog records branch switching\&. git reflog show is an alias for git log \-g \-\-abbrev\-commit \-\-pretty=oneline; see \fBgit-log\fR(1) for more information\&.
.sp
The "expire" subcommand prunes older reflog entries\&. Entries older than expire time, or entries older than expire\-unreachable time and not reachable from the current tip, are removed from the reflog\&. This is typically not used directly by end users \(em instead, see \fBgit-gc\fR(1)\&.
.sp
The "delete" subcommand deletes single entries from the reflog\&. Its argument must be an \fIexact\fR entry (e\&.g\&. "git reflog delete master@{2}")\&. This subcommand is also typically not used directly by end users\&.
.sp
The "exists" subcommand checks whether a ref has a reflog\&. It exits with zero status if the reflog exists, and non\-zero status if it does not\&.
.SH "OPTIONS"
.SS "Options for show"
.sp
git reflog show accepts any of the options accepted by git log\&.
.SS "Options for expire"
.PP
\-\-all
.RS 4
Process the reflogs of all references\&.
.RE
.PP
\-\-expire=<time>
.RS 4
Prune entries older than the specified time\&. If this option is not specified, the expiration time is taken from the configuration setting
gc\&.reflogExpire, which in turn defaults to 90 days\&.
\-\-expire=all
prunes entries regardless of their age;
\-\-expire=never
turns off pruning of reachable entries (but see
\-\-expire\-unreachable)\&.
.RE
.PP
\-\-expire\-unreachable=<time>
.RS 4
Prune entries older than
<time>
that are not reachable from the current tip of the branch\&. If this option is not specified, the expiration time is taken from the configuration setting
gc\&.reflogExpireUnreachable, which in turn defaults to 30 days\&.
\-\-expire\-unreachable=all
prunes unreachable entries regardless of their age;
\-\-expire\-unreachable=never
turns off early pruning of unreachable entries (but see
\-\-expire)\&.
.RE
.PP
\-\-updateref
.RS 4
Update the reference to the value of the top reflog entry (i\&.e\&. <ref>@{0}) if the previous top entry was pruned\&. (This option is ignored for symbolic references\&.)
.RE
.PP
\-\-rewrite
.RS 4
If a reflog entry\(cqs predecessor is pruned, adjust its "old" SHA\-1 to be equal to the "new" SHA\-1 field of the entry that now precedes it\&.
.RE
.PP
\-\-stale\-fix
.RS 4
Prune any reflog entries that point to "broken commits"\&. A broken commit is a commit that is not reachable from any of the reference tips and that refers, directly or indirectly, to a missing commit, tree, or blob object\&.
.sp
This computation involves traversing all the reachable objects, i\&.e\&. it has the same cost as
\fIgit prune\fR\&. It is primarily intended to fix corruption caused by garbage collecting using older versions of Git, which didn\(cqt protect objects referred to by reflogs\&.
.RE
.PP
\-n, \-\-dry\-run
.RS 4
Do not actually prune any entries; just show what would have been pruned\&.
.RE
.PP
\-\-verbose
.RS 4
Print extra information on screen\&.
.RE
.SS "Options for delete"
.sp
git reflog delete accepts options \-\-updateref, \-\-rewrite, \-n, \-\-dry\-run, and \-\-verbose, with the same meanings as when they are used with expire\&.
.SH "GIT"
.sp
Part of the \fBgit\fR(1) suite
